import Vue from 'vue'
import Vuex from 'vuex'
// 导入token 本地持久化方法
import * as auth from '@/utils/auth.js' // * as 对象 获取模块所有导出 */
// 导入user的api接口 ===>按需导出
import { login } from '@/api/user.js'
// 导入chat模块
import chat from './modules/chat'
// console.log('本地持久化导入', auth) // module对象
Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    user: auth.getToken() || {}
  },
  mutations: {
    setToken (state, token) {
      // 存到内存
      state.user = token
      // 存到本地===>刷新页面可以获取上一次存储到token的数据
      auth.setToken(token)
    },
    //  删除token
    delToken (state) {
      state.user = {}
      auth.delToken()
    }
  },
  actions: {
    // 登录请求接口
    async getToken ({ commit }, form) {
      // 调用login方法 发送登录请求
      const { data } = await login(form)
      // console.log('登录请求接口', res)
      commit('setToken', data)
    }
  },
  modules: {
    chat
  }
})
